home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / visulztn / saoimage / saoimage.lha / btnlib / tool / btnmenu.h < prev    next >
C/C++ Source or Header  |  1990-04-28  |  3KB  |  81 lines

  1. #ifndef lint
  2. static char SccsBtnMId[] = "%W%  %G%";
  3. #endif
  4.  
  5. /*
  6.  * Module:    btnmenu.h
  7.  * Project:    PROS -- ROSAT RSDC
  8.  * Purpose:    Define structures for SAO button constructor
  9.  * Typedefs:    BtnSpec, BoxSpec, MenuSpec, PanelSpec, PanelAttach
  10.  * Copyright:    1990 Smithsonian Astrophysical Observatory
  11.  *        You may do anything you like with this file except remove
  12.  *        this copyright.  The Smithsonian Astrophysical Observatory
  13.  *        makes no representations about the suitability of this
  14.  *        software for any purpose.  It is provided "as is" without
  15.  *        express or implied warranty.
  16.  * Modified:    {0} Michael VanHilst    initial version        20 March 1990
  17.  *        {n} <who> -- <does what> -- <when>
  18.  */
  19.  
  20. #include <X11/Xlib.h>
  21. #include "../buttons.h"        /* define OPTION_LIMIT and DATA_LIMIT */
  22.  
  23. typedef struct _BtnIcon {
  24.   char *icon;
  25.   char *mask;
  26.   int width, height;
  27. } BtnIcon;
  28.  
  29. typedef struct _BtnSpec {
  30.   char *offo_text;        /* off unoccupied text string */
  31.   int offo_tall;        /* 1 to move chars down, else 0 */
  32.   char *ono_text;        /* on unoccupied text string */
  33.   int ono_tall;            /* 1 to move chars down, else 0 */
  34.   char *offi_text;        /* off occupied text string */
  35.   int offi_tall;        /* 1 to move chars down, else 0 */
  36.   char *oni_text;        /* on occupied text string */
  37.   int oni_tall;            /* 1 to move chars down, else 0 */
  38.   BtnIcon *offo_icon;        /* off unoccupied icon (optional) */
  39.   BtnIcon *ono_icon;        /* on unoccupied icon (optional) */
  40.   BtnIcon *offi_icon;        /* off occupied icon (optional) */
  41.   BtnIcon *oni_icon;        /* on occupied icon (optional) */
  42.   int orient;            /* 0=level, 1=down, -1=up */
  43.   int option_cnt;        /* number of response funcs given */
  44.   int code[OPTION_LIMIT];    /* response function codes */
  45.   int mask[OPTION_LIMIT];    /* event recognition masks */
  46.   int ref[OPTION_LIMIT];    /* event recognition references */
  47.   int data[DATA_LIMIT];        /* data returned when selected */
  48. } BtnSpec;
  49.  
  50. typedef struct _BoxSpec {
  51.   char *title;            /* declaration identifying name */
  52.   BoxGeometry geo;
  53.   BtnSpec *btn;            /* list of specs to define buttons */
  54. } BoxSpec;
  55.  
  56. typedef struct _PanelAttach {
  57.   char *panel_title;        /* identifying title of panel */
  58.   char *box_title;        /* identifying title of box within panel */
  59.   int parent_index;        /* index of panel's parent window */
  60.   int attach, join;        /* flags for AttachSubMenu and JoinMenus */
  61.   int mask, reference;        /* button function mask and reference */
  62.   int match_cnt;        /* number of data items to match (0+) */
  63.   int data[DATA_LIMIT];
  64. } PanelAttach;
  65.  
  66. typedef struct _PanelSpec {
  67.   char *title;            /* title to identify this panel */
  68.   char *file_name;        /* name of file for declarations */
  69.   int parent_index;        /* index of window to hold panel */
  70.   int box_cnt;            /* number of boxes defined */
  71.   BoxSpec *box;            /* list of specs to define boxes */
  72.   PanelAttach *attach;        /* attachment specs if submenu */
  73. } PanelSpec;
  74.  
  75.  
  76. typedef struct _MenuSpec {
  77.   char *file_name;        /* name of file for main call */
  78.   int panel_cnt;        /* number of boxes defined */
  79.   PanelSpec *panel;        /* list of specs to define panels */
  80. } MenuSpec;
  81.